<template>
  <h4>当前的x值是：{{x.y}}</h4>
  <button @click="x={y:888}">点我替换x</button>
  <button @click="x.y++">点我x+1</button>
  <hr>
  <h2>{{person}}</h2>
  <h2>姓名：{{name}}</h2>
  <h2>年龄：{{age}}</h2>
  <!-- toRef(person.job.j1,'salary')的用法 -->
  <!-- <h2>薪资：{{salary}}K</h2> -->
  <!-- toRefs(person)的用法 -->
  <h2>薪资：{{job.j1.salary}}K</h2>
  <button @click="name+='~'">修改姓名</button>
  <button @click="age++">增长年龄</button>
  <!-- toRef(person.job.j1,'salary')的用法 -->
  <!-- <button @click="salary++">涨薪</button> -->
  <!-- toRefs(person)的用法 -->
  <button @click="job.j1.salary++">涨薪</button>
</template>
  
<script>
  import {ref,reactive,toRef,toRefs,shallowReactive,shallowRef} from 'vue'
  export default {
    name: 'Demo',
    setup(props,context){
      // 数据
      // let person = shallowReactive({ // 只考虑第一层数据的响应式
      let person = reactive({
        name: '张三',
        age: 18,
        job: {
          j1: {
            salary: 20
          }
        }
      })

      let x = shallowRef({ // value值是Object，不是响应式的
      // let x = ref({ // value值是Proxy对象，是响应式的
        y: 0
      })

      console.log('shallowRef',x)





      // 返回一个对象（常用）
      return {
        x,
        person,
        ...toRefs(person) // 这里只能将person下的第一层key拆出来
      }
  
    }
  
  }
  </script>
  
  
  